package com.tangyuan.ai.service.impl;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tangyuan.ai.entity.dto.RoleMaskQueryDTO;
import com.tangyuan.ai.entity.model.AiRoleMask;
import com.tangyuan.ai.entity.vo.AiRoleMaskVo;
import com.tangyuan.ai.mapper.AiRoleMaskMapper;
import com.tangyuan.ai.service.AiRoleMaskService;
import com.tangyuan.common.util.StringUtils;
import org.springframework.stereotype.Service;




@Service
public class AiRoleMaskServiceImpl extends ServiceImpl<AiRoleMaskMapper, AiRoleMask> implements AiRoleMaskService {


    /**
     * 分页、随机、模糊查询角色面具List  (mask有则模糊分页查询,没有则随机查询)
     * @param dto
     * @return 角色面具List
     */
    @Override
    public Page<AiRoleMaskVo> getAiRoleMask(RoleMaskQueryDTO dto) {
        QueryWrapper<AiRoleMask> wrapper = new QueryWrapper<>();
        wrapper.lambda().eq(dto.getMaskCategoryId() != null && dto.getMaskCategoryId() > 0,AiRoleMask::getMaskCategoryId,dto.getMaskCategoryId());
        wrapper.lambda().eq(dto.getType() != null && dto.getType() > 0,AiRoleMask::getType,dto.getType());
        wrapper.lambda().like(StringUtils.isNotBlank(dto.getMask()),AiRoleMask::getMask,dto.getMask());
        wrapper.lambda().eq(AiRoleMask::getIsDelete,0);
        wrapper.lambda().orderByAsc(AiRoleMask::getId);
        return baseMapper.getAiRoleMask(new Page<>(dto.getPageNum(), dto.getPageSize()), wrapper);
    }

    @Override
    public AiRoleMask getAiRoleMaskById(Long aiRoleMaskById) {
        return baseMapper.selectById(aiRoleMaskById);
    }


    @Override
    public String getMaskContent(Long maskId) {//角色面具
        if(maskId != null && maskId > 0){
            AiRoleMask maskById = getAiRoleMaskById(maskId);
            if(maskById != null){
                return maskById.getContent();
            }
        }
        return "";
    }

}